package com.pine.dbant.common.model;

import lombok.Getter;
import lombok.Setter;

import java.util.HashMap;
import java.util.Map;

/**
 * @author xiaoyuan
 * @create 2021/12/3 15:23
 **/
@Setter
@Getter
public class Field {

    /**
     * key:就是字段名字
     */
    private String key;

    /**
     * catalog
     * TABLE_CAT
     */
    private String catalogName;

    /**
     * schema
     * TABLE_SCHEM
     */
    private String schemaName;

    /**
     * 表名
     * TABLE_NAME
     */


    private String tableName;

    /**
     * 列名
     * COLUMN_NAME
     */
    private String columnName;
    /**
     * 数据库注释
     * REMARKS
     */
    private String fieldComment;

    /**
     * 字段在表定义中的列顺序位置 从1开始
     * ORDINAL_POSITION
     */
    private Integer ordinalPosition;

    /**
     * jdbc类型
     * DATA_TYPE
     *
     * @see java.sql.Types
     */
    private Integer jdbcType;

    /**
     * 在SQL中的字段类型名
     * 如VARCHAR
     * TYPE_NAME
     */
    private String sqlTypeName;

    /**
     * 字段长度或者 数值总位数
     * COLUMN_SIZE
     */
    private Integer size;

    /**
     * 小数位数
     * DECIMAL_DIGITS
     */
    private Integer decimalDigits;

    /**
     * 是否可为空
     * NULLABLE
     */
    private boolean nullable = true;

    /**
     * 默认值
     * COLUMN_DEF
     */
    private String defaultValue;

    /**
     * 是否自增
     * IS_AUTOINCREMENT
     */
    private boolean autoincrement = false;

    /**
     * 是否是主键
     */
    private Boolean primaryKey;

    /**
     * 操作类型
     */
    private Action action;
    /**
     * 其他参数
     */
    private Map<String,Object> properties = new HashMap<>();


}
